home *** CD-ROM | disk | FTP | other *** search
- *****************************************************************************
- * *
- * Very Fast Bob Routine *
- * *
- * Start Date : 26/2/91 *
- * Last Update : 26/2/91 *
- * Code : Melt Down / Arena *
- * *
- *****************************************************************************
-
- ; Include the macros
-
- Incdir Df1:
- Include Source/Macro
-
- *****************************************************************************
-
- ; Dont forget to use chip ram
-
- Chip
-
- *****************************************************************************
-
- ; Kill the operating system for good mesure
-
- Kill
-
- *****************************************************************************
-
- ; Load custom and set up copper list
-
- Lea Custom,A5
- Move.l #Copper,Cop1lch(a5)
-
- *****************************************************************************
-
- ; Clear Some Mem
-
- Blitwait
- Move.l #$70000,Bltdpth(a5)
- Move.l #-1,Bltafwm(a5)
- Move.w #0,Bltdmod(a5)
- Move.l #$01000000,Bltcon0(a5)
- Move.w #256*64+60,Bltsize(a5)
-
- Blitwait
- Move.l #$77a00,Bltdpth(a5)
- Move.l #-1,Bltafwm(a5)
- Move.w #0,Bltdmod(a5)
- Move.l #$01000000,Bltcon0(a5)
- Move.w #256*64+60,Bltsize(a5)
-
- *****************************************************************************
-
- ; Just Wait For The Main Man
-
- Blitwait
-
- *****************************************************************************
-
- ; Main routine here
-
- Mouse
- Move.l $dff004,d2
- And.l #$1ff00,d2
- Cmp.l #$100,d2
- Bne.s Mouse
- Bsr DBuf
- Bsr ClearAll
- Bsr BlitAll
- Tstmice Mouse ; Pressed the mouse
-
- *****************************************************************************
-
- ; Return operating system and go back to user
-
- Heal
- Clr.l D0 ; No error
- Rts
-
- *****************************************************************************
-
- DBuf
- Eor.w #$7a00,ScreenPtr+2
- Eor.w #$7a00,b1l+2
- Eor.w #$7a00,b2l+2
- Eor.w #$7a00,b3l+2
- Rts
-
- *****************************************************************************
-
- ClearAll
- Clear
- Blitwait ; Blitter Nasty But Why Do
- Move.l #$01000000,Bltcon0(a5) ; Clear
- Move.w #$0000,Bltdmod(a5) ; Skip No Bytes
- Move.l ScreenPtr,A1
- Move.l a1,Bltdpth(A5) ; Set Dest
- Move.l #-1,Bltafwm(a5) ; Use All Bits
- Move.w #108*64+60,Bltsize(a5) ; Fill Half Screen
- Movem.l a0-a6/d0-d7,-(a7) ; Save The Regs
- Movem.l RegFiller(pc),a1-a6/d0-d7 ; Clear The Regs
- Move.l ScreenPtr,A0
- Add.l #25920,A0
-
- Rept 232
- Movem.l a1-a6/d0-d7,-(a0) ; Clear 56 Butes
- Endr ; End repeat
- Movem.l (a7)+,a0-a6/d0-d7 ; Restor Regs
- Rts
- RegFiller
- Dcb.l 16,0
- Rts
-
- *****************************************************************************
-
- BlitAll
- Blitwait
- Move.w #-2,Bltamod(a5)
- Move.w #-2,Bltbmod(a5)
- Move.w #36,Bltcmod(a5)
- Move.w #36,Bltdmod(a5)
- Move.l #$ffff0000,Bltafwm(a5)
- Move.l ScreenPtr,a0
- Lea Shifts,A1
- Lea Xsin,A2
- Lea Ysin,A3
- Move.l #BobMask,a4
- Lea Form1,A6
- Move.w (a6)+,D7
- Move.l #Bob,d2
- Move.w #48*64+2,d4
- Move.l #$01fe01fe,D5
- Move.w (a6)+,D3 ; Xinc
- Swap d3
- Move.w (a6)+,D3 ; Yinc
- Move.l a0,bltcpth(A5)
- Move.l a0,bltdpth(A5)
- Move.w A0,D6
- DoBobs
- Move.w d6,a0
- Add.l d3,(a6)
- And.l D5,(a6)
- Move.w (a6)+,D0 ; Get X
- Move.w (a6)+,D1 ; Get Y
- Move.w (a2,d0),d0
- Add.w (a3,d1),A0
- Add.w (a1,d0),A0
- Move.l 2(a1,d0),Bltcon0(a5)
- Move.l a4,bltapth(A5)
- Move.l d2,bltbpth(A5)
- Move.w a0,bltcptl(A5)
- Move.w a0,bltdptl(A5)
- move.w d4,bltsize(A5)
- Dbf D7,DoBobs
- Rts
-
- *****************************************************************************
-
- StShift Macro
- Dc.w \1,$0fca,$0000
- Dc.w \1,$1fca,$1000
- Dc.w \1,$2fca,$2000
- Dc.w \1,$3fca,$3000
- Dc.w \1,$4fca,$4000
- Dc.w \1,$5fca,$5000
- Dc.w \1,$6fca,$6000
- Dc.w \1,$7fca,$7000
- Dc.w \1,$8fca,$8000
- Dc.w \1,$9fca,$9000
- Dc.w \1,$afca,$a000
- Dc.w \1,$bfca,$b000
- Dc.w \1,$cfca,$c000
- Dc.w \1,$dfca,$d000
- Dc.w \1,$efca,$e000
- Dc.w \1,$ffca,$f000
- Endm
- Shifts
- StShift 0
- StShift 2
- StShift 4
- StShift 6
- StShift 8
- StShift 10
- StShift 12
- StShift 14
- StShift 16
- StShift 18
- StShift 20
- StShift 22
- StShift 24
- StShift 26
- StShift 28
- StShift 30
- StShift 32
- StShift 34
- StShift 36
- StShift 38
- StShift 40
-
- *****************************************************************************
-
- ; All copper list after here
-
- Copper
-
- Spr_Off ; Switch sprites off
- Cmove $2c81,Diwstrt
- Cmove $2cc1,Diwstop
- Cmove $0038,Ddfstrt
- Cmove $00d0,Ddfstop
- Cmove $0050,Bpl1mod
- Cmove $0050,Bpl2mod
- Cmove $0000,Color00
- Cmove $0ffa,Color01
- Cmove $0ab0,Color02
- Cmove $0a80,Color03
- Cmove $0960,Color04
- Cmove $0730,Color05
- CMove $0610,Color06
- Cmove $0500,Color08
- Cmove $0007,Bpl1pth
- B1l
- Cmove $0000,Bpl1ptl
- Cmove $0007,Bpl2pth
- B2l
- Cmove $0028,Bpl2ptl
- Cmove $0007,Bpl3pth
- B3l
- Cmove $0050,Bpl3ptl
- Cmove $3200,Bplcon0
- Endcop
-
- *****************************************************************************
-
- ; Inc Files For The Bobs
-
- Bob
- Incbin Gfx/Bobs.bm
- BobMask
- Incbin Gfx/BobsMask.Bm
-
- *****************************************************************************
-
- XSin
- Rept 2
- dc.w 300*6,300*6,300*6,300*6,299*6,299*6,298*6,298*6
- dc.w 297*6,296*6,296*6,295*6,294*6,292*6,291*6,290*6
- dc.w 289*6,287*6,286*6,284*6,282*6,281*6,279*6,277*6
- dc.w 275*6,273*6,270*6,268*6,266*6,264*6,261*6,259*6
- dc.w 256*6,253*6,251*6,248*6,245*6,242*6,239*6,236*6
- dc.w 233*6,230*6,227*6,224*6,221*6,217*6,214*6,211*6
- dc.w 207*6,204*6,201*6,197*6,194*6,190*6,186*6,183*6
- dc.w 179*6,176*6,172*6,168*6,165*6,161*6,157*6,154*6
- dc.w 150*6,146*6,143*6,139*6,135*6,132*6,128*6,124*6
- dc.w 121*6,117*6,114*6,110*6,106*6,103*6,99*6,96*6
- dc.w 93*6,89*6,86*6,83*6,79*6,76*6,73*6,70*6
- dc.w 67*6,64*6,61*6,58*6,55*6,52*6,49*6,47*6
- dc.w 44*6,41*6,39*6,36*6,34*6,32*6,30*6,27*6
- dc.w 25*6,23*6,21*6,19*6,18*6,16*6,14*6,13*6
- dc.w 11*6,10*6,9*6,8*6,6*6,5*6,4*6,4*6
- dc.w 3*6,2*6,2*6,1*6,1*6,0*6,0*6,0*6
- dc.w 0*6,0*6,0*6,0*6,1*6,1*6,2*6,2*6
- dc.w 3*6,4*6,4*6,5*6,6*6,8*6,9*6,10*6
- dc.w 11*6,13*6,14*6,16*6,18*6,19*6,21*6,23*6
- dc.w 25*6,27*6,30*6,32*6,34*6,36*6,39*6,41*6
- dc.w 44*6,47*6,49*6,52*6,55*6,58*6,61*6,64*6
- dc.w 67*6,70*6,73*6,76*6,79*6,83*6,86*6,89*6
- dc.w 93*6,96*6,99*6,103*6,106*6,110*6,114*6,117*6
- dc.w 121*6,124*6,128*6,132*6,135*6,139*6,143*6,146*6
- dc.w 150*6,154*6,157*6,161*6,165*6,168*6,172*6,176*6
- dc.w 179*6,183*6,186*6,190*6,194*6,197*6,201*6,204*6
- dc.w 207*6,211*6,214*6,217*6,221*6,224*6,227*6,230*6
- dc.w 233*6,236*6,239*6,242*6,245*6,248*6,251*6,253*6
- dc.w 256*6,259*6,261*6,264*6,266*6,268*6,270*6,273*6
- dc.w 275*6,277*6,279*6,281*6,282*6,284*6,286*6,287*6
- dc.w 289*6,290*6,291*6,292*6,294*6,295*6,296*6,296*6
- dc.w 297*6,298*6,298*6,299*6,299*6,300*6,300*6,300*6
- Endr
-
- *****************************************************************************
-
- YSin
- Rept 2
- dc.w 184*120,184*120,184*120,184*120,184*120,183*120,183*120,183*120
- dc.w 182*120,182*120,181*120,181*120,180*120,179*120,179*120,178*120
- dc.w 177*120,176*120,175*120,174*120,173*120,172*120,171*120,170*120
- dc.w 168*120,167*120,166*120,165*120,163*120,162*120,160*120,159*120
- dc.w 157*120,155*120,154*120,152*120,150*120,149*120,147*120,145*120
- dc.w 143*120,141*120,139*120,137*120,135*120,133*120,131*120,129*120
- dc.w 127*120,125*120,123*120,121*120,119*120,117*120,114*120,112*120
- dc.w 110*120,108*120,105*120,103*120,101*120,99*120,97*120,94*120
- dc.w 92*120,90*120,87*120,85*120,83*120,81*120,79*120,76*120
- dc.w 74*120,72*120,70*120,67*120,65*120,63*120,61*120,59*120
- dc.w 57*120,55*120,53*120,51*120,49*120,47*120,45*120,43*120
- dc.w 41*120,39*120,37*120,35*120,34*120,32*120,30*120,29*120
- dc.w 27*120,25*120,24*120,22*120,21*120,19*120,18*120,17*120
- dc.w 16*120,14*120,13*120,12*120,11*120,10*120,9*120,8*120
- dc.w 7*120,6*120,5*120,5*120,4*120,3*120,3*120,2*120
- dc.w 2*120,1*120,1*120,1*120,0*120,0*120,0*120,0*120
- dc.w 0*120,0*120,0*120,0*120,0*120,1*120,1*120,1*120
- dc.w 2*120,2*120,3*120,3*120,4*120,5*120,5*120,6*120
- dc.w 7*120,8*120,9*120,10*120,11*120,12*120,13*120,14*120
- dc.w 16*120,17*120,18*120,19*120,21*120,22*120,24*120,25*120
- dc.w 27*120,29*120,30*120,32*120,34*120,35*120,37*120,39*120
- dc.w 41*120,43*120,45*120,47*120,49*120,51*120,53*120,55*120
- dc.w 57*120,59*120,61*120,63*120,65*120,67*120,70*120,72*120
- dc.w 74*120,76*120,79*120,81*120,83*120,85*120,87*120,90*120
- dc.w 92*120,94*120,97*120,99*120,101*120,103*120,105*120,108*120
- dc.w 110*120,112*120,114*120,117*120,119*120,121*120,123*120,125*120
- dc.w 127*120,129*120,131*120,133*120,135*120,137*120,139*120,141*120
- dc.w 143*120,145*120,147*120,149*120,150*120,152*120,154*120,155*120
- dc.w 157*120,159*120,160*120,162*120,163*120,165*120,166*120,167*120
- dc.w 168*120,170*120,171*120,172*120,173*120,174*120,175*120,176*120
- dc.w 177*120,178*120,179*120,179*120,180*120,181*120,181*120,182*120
- dc.w 182*120,183*120,183*120,183*120,184*120,184*120,184*120,184*120
- Endr
-
- *****************************************************************************
-
- XY Macro
- Dc.w (\1*2)&$1fe,(\2*2)&$1fe
- Endm
- Form1
- Dc.w 85-1
- Dc.w 2,2
- A Set 0
- B Set 256
-
- Rept 85
- XY a,b
- A Set a+2
- b Set b-2
- Endr
-
- *****************************************************************************
-
- ScreenPtr
- Dc.l $70000
-
- *****************************************************************************
-
-